package com.github.shiqiyue.flow.contol;

import org.redisson.api.RedissonClient;

import com.github.shiqiyue.flow.contol.dao.FlowControlDao;
import com.github.shiqiyue.flow.contol.intercept.action.FlowControlInterceptAction;
import com.github.shiqiyue.flow.contol.redis.name.strategy.RedisKeyNameStrategy;

/***
 * 流量控制配置类
 * 
 * @author wwy
 *
 */
public interface FlowControlConfigurer {
	
	/***
	 * 设置流量控制-拦截后的动作
	 * 
	 * @return
	 */
	public FlowControlInterceptAction flowControlInterceptAction();
	
	/***
	 * 设置流量控制-拦截数据来源
	 * 
	 * @return
	 */
	public FlowControlDao flowControlDao();
	
	/***
	 * 设置redis命名策略
	 * 
	 * @return
	 */
	public RedisKeyNameStrategy redisKeyNameStrategy();
	
	/***
	 * 设置redis客户端
	 * 
	 * @return
	 */
	public RedissonClient redissonClient();
	
}
